/**
 * 
 */
package modelo.tests;

import junit.framework.TestCase;
import modelo.abstraccionesGeometricas.Intervalo;
import modelo.funciones.Funcion;
import modelo.funciones.Potencia;
import modelo.operaciones.OperacionSobreFunciones;
/**
 * @author Laura
 *
 */
public class PotenciaTest extends TestCase {

	private Funcion funcion;
	private Intervalo intervalo;
	
	/* (non-Javadoc)
	 * @see junit.framework.TestCase#setUp()
	 */
	@Override
	protected void setUp() throws Exception {
		super.setUp();
		this.funcion = new Potencia(2);
		intervalo= new Intervalo(0,3);
	}

	public void testEvaluar(){ 
		double doble = this.funcion.evaluar(3d);	
		assertTrue(doble == 9d);
	}
	
	public void testDerivar(){
		double valor= OperacionSobreFunciones.calcularDerivada(funcion, 2d);
		assertTrue(valor == 4d);
	}
	
	public void testIntegrar(){
		double valor= OperacionSobreFunciones.calcularIntegral(funcion, intervalo);
		assertTrue(OperacionSobreFunciones.redondear(valor) == 9d);
	}
	
	public void testMaximo(){
		double maximo= OperacionSobreFunciones.maximo(funcion, intervalo);
		assertTrue(maximo == 9d);
	}
	
	public void testMinimo(){
		boolean bandera=false;
		double valor= OperacionSobreFunciones.minimo(funcion, intervalo);
		if (valor<0.0001 && valor>-0.0001) bandera=true;
		assertTrue(bandera == true);
	}
}
